home *** CD-ROM | disk | FTP | other *** search
/ SGI Performance Co-Pilot 1.3 / SGI Performance Co-Pilot 1.3.iso / dist / dist6.4 / pcp.idb / usr / share / catman / u_man / cat3 / PMAPI / pmapi.z / pmapi
Text File  |  1997-04-03  |  30KB  |  529 lines

  1.  
  2.  
  3.  
  4. PPPPMMMMAAAAPPPPIIII((((3333))))                                                              PPPPMMMMAAAAPPPPIIII((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      PPPPMMMMAAAAPPPPIIII - introduction to the Performance Metrics Application Programming
  10.      Interface
  11.  
  12. CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      ####iiiinnnncccclllluuuuddddeeee <<<<ppppccccpppp////ppppmmmmaaaappppiiii....hhhh>>>>
  14.  
  15.       ... assorted routines ...
  16.  
  17.      cccccccc ............ ----llllppppccccpppp
  18.  
  19. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  20.      Within the framework of the Performance Co-Pilot (PCP), client
  21.      applications are developed using the Performance Metrics Application
  22.      Programming Interface (PMAPI) that defines a procedural interface with
  23.      services suited to the development of applications with a particular
  24.      interest in performance metrics.
  25.  
  26.      This description presents an overview of the PMAPI and the context in
  27.      which PMAPI applications are run.  The PMAPI is more fully described in
  28.      in the _P_e_r_f_o_r_m_a_n_c_e _C_o-_P_i_l_o_t _P_r_o_g_r_a_m_m_e_r'_s _G_u_i_d_e, and the manual pages for
  29.      the individual PMAPI routines.
  30.  
  31. PPPPEEEERRRRFFFFOOOORRRRMMMMAAAANNNNCCCCEEEE MMMMEEEETTTTRRRRIIIICCCCSSSS ---- NNNNAAAAMMMMEEEESSSS AAAANNNNDDDD IIIIDDDDEEEENNNNTTTTIIIIFFFFIIIIEEEERRRRSSSS
  32.      The number of performance metric types is of the order of a few thousand.
  33.      The PMAPI uses an internal identification scheme that unambiguously
  34.      associates a single integer with each of the known types of performance
  35.      metric.  This integer is known as the Performance Metric Identifier, or
  36.      PMID.  PMIDs have global consistency across all systems, so a particular
  37.      performance metric universally has the same PMID.
  38.  
  39.      For many applications, direct use of the PMIDs may be inappropriate (e.g.
  40.      this would limit the range of accessible metrics, make the code hard to
  41.      maintain, force the user interface to be particularly baroque, etc.).
  42.      Hence above the PMAPI, a Performance Metrics Name Space (PMNS) is used to
  43.      provide a hierarchic classification of PMIDs.  A PMNS is represented as a
  44.      tree, with each node having a label, a pointer to either a PMID (for leaf
  45.      nodes) or a set of descendent nodes in the PMNS (for non-leaf nodes).
  46.  
  47.      A node label must begin with an alphabetic character, followed by zero or
  48.      more characters drawn from the alphabetics, the digits and character `_'
  49.      (underscore).  For alphabetic characters in a node label, upper and lower
  50.      case are distinguished.
  51.  
  52.      By convention, the name of a performance metric is constructed by
  53.      concatenation of the node labels on a path through the PMNS from the root
  54.      node to a leaf node, with a ``.'' as a separator.  The root node in the
  55.      PMNS is unlabelled, so all names begin with the label associated with one
  56.      of the descendent nodes below the root node of the PMNS, e.g.
  57.      _i_r_i_x._k_e_r_n_e_l._p_e_r_c_p_u._s_y_s_c_a_l_l.  There may be at most one name for each PMID
  58.      in a PMNS.  For example _i_r_i_x._k_e_r_n_e_l._a_l_l._c_p_u._i_d_l_e and _i_r_i_x._d_i_s_k._d_e_v._r_e_a_d
  59.      are the unique names for two distinct performance metrics, each with a
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. PPPPMMMMAAAAPPPPIIII((((3333))))                                                              PPPPMMMMAAAAPPPPIIII((((3333))))
  71.  
  72.  
  73.  
  74.      unique PMID.
  75.  
  76.      Groups of related PMIDs may be named by naming a non-leaf node in the
  77.      PMNS tree, e.g. _i_r_i_x._d_i_s_k.
  78.  
  79.      Use ppppmmmmiiiinnnnffffoooo(1), or the Metric Selection browser within ppppmmmmcccchhhhaaaarrrrtttt(1) to
  80.      explore the PMNS.
  81.  
  82.      There may be PMIDs with no associated name in a PMNS; this is most likely
  83.      to occur when specific PMIDs are not available in all systems, e.g. if
  84.      Informix is not installed on a system, there is no good reason to pollute
  85.      the PMNS with names for all of the Informix performance metrics.
  86.  
  87.      Applications which use the PMAPI may have independent versions of a PMNS,
  88.      constructed from an initialization file when the application starts; see
  89.      ppppmmmmLLLLooooaaaaddddAAAASSSSCCCCIIIIIIIINNNNaaaammmmeeeeSSSSppppaaaacccceeee(3), ppppmmmmLLLLooooaaaaddddNNNNaaaammmmeeeeSSSSppppaaaacccceeee(3), ppppmmmmnnnnssssccccoooommmmpppp(1) and ppppmmmmnnnnssss(4).
  90.      Not all PMIDs need be represented in the PMNS of every application.  For
  91.      example, an application which monitors disk traffic will likely use a
  92.      name space which references only the PMIDs for I/O statistics.  Note also
  93.      that there is no requirement for the PMNS to be the same on all systems,
  94.      however in practice most applications would be developed against a stable
  95.      PMNS that was assumed to be the same on all systems.  Indeed the PCP
  96.      distribution includes a default PMNS for just this purpose.
  97.  
  98.      The default PMNS is located at /_v_a_r/_p_c_p/_p_m_n_s/_r_o_o_t for base PCP
  99.      installations, however the environment variable PPPPMMMMNNNNSSSS____DDDDEEEEFFFFAAAAUUUULLLLTTTT may be set
  100.      to the full pathname of a different PMNS which will then be used as the
  101.      default PMNS.
  102.  
  103.      Other complete versions of the PMNS suitable for assorted variants on the
  104.      base PCP installation may be found in the files /_v_a_r/_p_c_p/_p_m_n_s/_r_o_o_t_*.
  105.      For some PCP deployments on non-SGI platforms, the PMNS may be different,
  106.      and in some cases very diffent.  Where possible, a hybrid PMNS that
  107.      provides equivalence mappings between the IRIX names and the non-SGI
  108.      PMIDs may be found in the files /_v_a_r/_p_c_p/_p_m_n_s/_e_q_u_i_v_*.
  109.  
  110.      Internally (below the PMAPI) the implementation of the Performance
  111.      Metrics Collection System (PMCS) uses only the PMIDs, and a PMNS provides
  112.      an external mapping from a hierarchic taxonomy of names to PMIDs that is
  113.      convenient in the context of a particular system or particular use of the
  114.      PMAPI.  For the applications programmer, the routines ppppmmmmLLLLooooooookkkkuuuuppppNNNNaaaammmmeeee(3) and
  115.      ppppmmmmNNNNaaaammmmeeeeIIIIDDDD(3) translate between names in a PMNS and PMIDs, and vice versa.
  116.      The PMNS may be traversed using ppppmmmmGGGGeeeettttCCCChhhhiiiillllddddrrrreeeennnn(3).
  117.  
  118. PPPPMMMMAAAAPPPPIIII CCCCOOOONNNNTTTTEEEEXXXXTTTT
  119.      An application using the PMAPI may manipulate several concurrent
  120.      contexts, each associated with a source of performance metrics, e.g.
  121.      ppppmmmmccccdddd(1) on some host, or an archive log of performance metrics as created
  122.      by ppppmmmmllllooooggggggggeeeerrrr(1).
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. PPPPMMMMAAAAPPPPIIII((((3333))))                                                              PPPPMMMMAAAAPPPPIIII((((3333))))
  137.  
  138.  
  139.  
  140.      Contexts are identified by a ``handle'', a small integer value that is
  141.      returned when the context is created; see ppppmmmmNNNNeeeewwwwCCCCoooonnnntttteeeexxxxtttt(3) and
  142.      ppppmmmmDDDDuuuuppppCCCCoooonnnntttteeeexxxxtttt(3).  Some PMAPI functions require an explicit ``handle'' to
  143.      identify the correct context, but more commonly the PMAPI function is
  144.      executed in the ``current'' context.  The current context may be
  145.      discovered using ppppmmmmWWWWhhhhiiiicccchhhhCCCCoooonnnntttteeeexxxxtttt(3) and changed using ppppmmmmUUUUsssseeeeCCCCoooonnnntttteeeexxxxtttt(3).
  146.  
  147.      If a PMAPI context has not been explicitly established (or the previous
  148.      current context has been closed using ppppmmmmDDDDeeeessssttttrrrrooooyyyyCCCCoooonnnntttteeeexxxxtttt(3)) then the
  149.      current PMAPI context is undefined.
  150.  
  151.      In addition to the source of the performance metrics, the context also
  152.      includes the instance profile and collection time (both described below)
  153.      which controls how much information is returned, and when the information
  154.      was collected.
  155.  
  156. IIIINNNNSSSSTTTTAAAANNNNCCCCEEEE DDDDOOOOMMMMAAAAIIIINNNNSSSS
  157.      When performance metric values are returned across the PMAPI to a
  158.      requesting application, there may be more than one value for a particular
  159.      metric.  Multiple values, or iiiinnnnssssttttaaaannnncccceeeessss, for a single metric are typically
  160.      the result of instrumentation being implemented for each instance of a
  161.      set of similar components or services in a system, e.g.  independent
  162.      counts for each CPU, or each process, or each disk, or each system call
  163.      type, etc.  This multiplicity of values is not enumerated in the name
  164.      space but rather, when performance metrics are delivered across the PMAPI
  165.      by ppppmmmmFFFFeeeettttcccchhhh(3), the format of the result accommodates values for one or
  166.      more instances, with an instance-value pair encoding the metric value for
  167.      a particular instance.
  168.  
  169.      The instances are identified by an internal identifier assigned by the
  170.      agent responsible for instantiating the values for the associated
  171.      performance metric.  Each instance identifier has a corresponding
  172.      external instance identifier name (an ASCII string).  The routines
  173.      ppppmmmmGGGGeeeettttIIIInnnnDDDDoooommmm(3), ppppmmmmLLLLooooooookkkkuuuuppppIIIInnnnDDDDoooommmm(3) and ppppmmmmNNNNaaaammmmeeeeIIIInnnnDDDDoooommmm(3) may be used to
  174.      enumerate all instance identifiers, and to translate between internal and
  175.      external instance identifiers.
  176.  
  177.      All of the instance identifiers for a particular performance metric are
  178.      collectively known as an instance domain.  Multiple performance metrics
  179.      may share the same instance domain.
  180.  
  181.      If only one instance is ever available for a particular performance
  182.      metric, the instance identifier in the result from ppppmmmmFFFFeeeettttcccchhhh(3) assumes the
  183.      special value PPPPMMMM____IIIINNNN____NNNNUUUULLLLLLLL and may be ignored by the application, and only
  184.      one instance-value pair appears in the result for that metric.  Under
  185.      these circumstances, the associated instance domain (as returned via
  186.      ppppmmmmLLLLooooooookkkkuuuuppppDDDDeeeesssscccc(3)) is set to PPPPMMMM____IIIINNNNDDDDOOOOMMMM____NNNNUUUULLLLLLLL to indicate that values for this
  187.      metric are singular.
  188.  
  189.      The difficult issue of transient performance metrics (e.g. per-filesystem
  190.      information, hot-plug replaceable hardware modules, etc.) means that
  191.      repeated requests for the same PMID may return different numbers of
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. PPPPMMMMAAAAPPPPIIII((((3333))))                                                              PPPPMMMMAAAAPPPPIIII((((3333))))
  203.  
  204.  
  205.  
  206.      values, and/or some changes in the particular instance identifiers
  207.      returned.  This means applications need to be aware that metric
  208.      instantiation is guaranteed to be valid at the time of collection only.
  209.      Similar rules apply to the transient semantics of the associated metric
  210.      values.  In general however, it is expected that the bulk of the
  211.      performance metrics will have instantiation semantics that are fixed over
  212.      the execution life-time of any PMAPI client.
  213.  
  214. TTTTHHHHEEEE TTTTYYYYPPPPEEEE OOOOFFFF MMMMEEEETTTTRRRRIIIICCCC VVVVAAAALLLLUUUUEEEESSSS
  215.      The PMAPI supports a wide range of format and type encodings for the
  216.      values of performance metrics, namely signed and unsigned integers,
  217.      floating point numbers, 32-bit and 64-bit encodings of all of the above,
  218.      ASCII strings (C-style, NULL byte terminated), and arbitrary aggregates
  219.      of binary data.
  220.  
  221.      The _t_y_p_e field in the _p_m_D_e_s_c structure returned by ppppmmmmLLLLooooooookkkkuuuuppppDDDDeeeesssscccc(3)
  222.      identifies the format and type of the values for a particular performance
  223.      metric within a particular PMAPI context.
  224.  
  225.      Note that the encoding of values for a particular performance metric may
  226.      be different for different PMAPI contexts, due to differences in the
  227.      underlying implementation for different contexts.  However it is expected
  228.      that the vast majority of performance metrics will have consistent value
  229.      encoding across all versions of all implementations, and hence across all
  230.      PMAPI contexts.
  231.  
  232.      The PMAPI supports routines to automate the handling of the various value
  233.      formats and types, particularly for the common case where conversion to a
  234.      canonical format is desired, see ppppmmmmEEEExxxxttttrrrraaaaccccttttVVVVaaaalllluuuueeee(3) and ppppmmmmPPPPrrrriiiinnnnttttVVVVaaaalllluuuueeee(3).
  235.  
  236. TTTTHHHHEEEE DDDDIIIIMMMMEEEENNNNSSSSIIIIOOOONNNNAAAALLLLIIIITTTTYYYY AAAANNNNDDDD SSSSCCCCAAAALLLLEEEE OOOOFFFF MMMMEEEETTTTRRRRIIIICCCC VVVVAAAALLLLUUUUEEEESSSS
  237.      Independent of how the value is encoded, the value for a performance
  238.      metric is assumed to be drawn from a set of values that can be described
  239.      in terms of their dimensionality and scale by a compact encoding as
  240.      follows.  The dimensionality is defined by a power, or index, in each of
  241.      3 orthogonal dimensions, namely Space, Time and Count (or Events, which
  242.      are dimensionless).  For example I/O throughput might be represented as
  243.      Space.Time-1, while the running total of system calls is Count, memory
  244.      allocation is Space and average service time is Time.Count-1.  In each
  245.      dimension there are a number of common scale values that may be used to
  246.      better encode ranges that might otherwise exhaust the precision of a 32-
  247.      bit value.  This information is encoded in the _p_m_U_n_i_t_s structure which is
  248.      embedded in the _p_m_D_e_s_c structure returned from ppppmmmmLLLLooooooookkkkuuuuppppDDDDeeeesssscccc(3).
  249.  
  250.      The routine ppppmmmmCCCCoooonnnnvvvvSSSSccccaaaalllleeee(3) is provided to convert values in conjunction
  251.      with the _p_m_U_n_i_t_s structures that defines the dimensionality and scale of
  252.      the values for a particular performance metric as returned from
  253.      ppppmmmmFFFFeeeettttcccchhhh(3), and the desired dimensionality and scale of the value the
  254.      PMAPI client wishes to manipulate.
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. PPPPMMMMAAAAPPPPIIII((((3333))))                                                              PPPPMMMMAAAAPPPPIIII((((3333))))
  269.  
  270.  
  271.  
  272. IIIINNNNSSSSTTTTAAAANNNNCCCCEEEE PPPPRRRROOOOFFFFIIIILLLLEEEE
  273.      The set of instances for performance metrics returned from a ppppmmmmFFFFeeeettttcccchhhh(3)
  274.      call may be filtered or restricted using an instance profile.  There is
  275.      one instance profile for each PMAPI context the application creates, and
  276.      each instance profile may include instances from one or more instance
  277.      domains.
  278.  
  279.      The routines ppppmmmmAAAAddddddddPPPPrrrrooooffffiiiilllleeee(3) and ppppmmmmDDDDeeeellllPPPPrrrrooooffffiiiilllleeee(3) may be used to
  280.      dynamically adjust the instance profile.
  281.  
  282. CCCCOOOOLLLLLLLLEEEECCCCTTTTIIIIOOOONNNN TTTTIIIIMMMMEEEE
  283.      For each set of values for performance metrics returned via ppppmmmmFFFFeeeettttcccchhhh(3)
  284.      there is an associated ``timestamp'' that serves to identify when the
  285.      performance metric values were collected; for metrics being delivered
  286.      from a real-time source (i.e. ppppmmmmccccdddd(1) on some host) this would typically
  287.      be not long before they were exported across the PMAPI, and for metrics
  288.      being delivered from an archive log, this would be the time when the
  289.      metrics were written into the archive log.
  290.  
  291.      There is an issue here of exactly when individual metrics may have been
  292.      collected, especially given their origin in potentially different
  293.      Performance Metric Domains, and variability in the metric updating
  294.      frequency at the lowest level of the Performance Metric Domain.  The PMCS
  295.      opts for the pragmatic approach, in which the PMAPI implementation
  296.      undertakes to return all of the metrics with values accurate as of the
  297.      timestamp, to the best of our ability.  The belief is that the inaccuracy
  298.      this introduces is small, and the additional burden of accurate
  299.      individual timestamping for each returned metric value is neither
  300.      warranted nor practical (from an implementation viewpoint).
  301.  
  302.      Of course, in the case of collection of metrics from multiple hosts the
  303.      PMAPI client must assume the sanity of the timestamps is constrained by
  304.      the extent to which clock synchronization protocols are implemented
  305.      across the network.
  306.  
  307.      A PMAPI application may call ppppmmmmSSSSeeeettttMMMMooooddddeeee(3) to vary the requested
  308.      collection time, e.g. to rescan performance metrics values from the
  309.      recent past, or to ``fast-forward'' through an archive log.
  310.  
  311. GGGGEEEENNNNEEEERRRRAAAALLLL IIIISSSSSSSSUUUUEEEESSSS OOOOFFFF PPPPMMMMAAAAPPPPIIII PPPPRRRROOOOGGGGRRRRAAAAMMMMMMMMIIIINNNNGGGG SSSSTTTTYYYYLLLLEEEE
  312.      Across the PMAPI, all arguments and results involving a ``list of
  313.      something'' are declared to be arrays with an associated argument or
  314.      function value to identify the number of elements in the list.  This has
  315.      been done to avoid both the vvvvaaaarrrraaaarrrrggggssss(3) approach and sentinel-terminated
  316.      lists.
  317.  
  318.      Where the size of a result is known at the time of a call, it is the
  319.      caller's responsibility to allocate (and possibly free) the storage, and
  320.      the called function will assume the result argument is of an appropriate
  321.      size.  Where a result is of variable size and that size cannot be known
  322.      in advance (e.g. for ppppmmmmGGGGeeeettttCCCChhhhiiiillllddddrrrreeeennnn(3), ppppmmmmGGGGeeeettttIIIInnnnDDDDoooommmm(3), ppppmmmmNNNNaaaammmmeeeeIIIInnnnDDDDoooommmm(3),
  323.      ppppmmmmNNNNaaaammmmeeeeIIIIDDDD(3), ppppmmmmLLLLooooooookkkkuuuuppppTTTTeeeexxxxtttt(3) and ppppmmmmFFFFeeeettttcccchhhh(3)) the PMAPI implementation
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. PPPPMMMMAAAAPPPPIIII((((3333))))                                                              PPPPMMMMAAAAPPPPIIII((((3333))))
  335.  
  336.  
  337.  
  338.      uses a range of dynamic allocation schemes in the called routine, with
  339.      the caller responsible for subsequently releasing the storage when no
  340.      longer required.  In some cases this simply involves calls to ffffrrrreeeeeeee(3C),
  341.      but in others (most notably for the result from ppppmmmmFFFFeeeettttcccchhhh(3)), special
  342.      routines (e.g. ppppmmmmFFFFrrrreeeeeeeeRRRReeeessssuuuulllltttt(3)) should be used to release the storage.
  343.  
  344.      As a general rule, if the called routine returns an error status then no
  345.      allocation will have been done, and any pointer to a variable sized
  346.      result is undefined.
  347.  
  348. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  349.      Where error conditions may arise, the functions that comprise the PMAPI
  350.      conform to a single, simple error notification scheme, as follows;
  351.  
  352.      +  the function returns an integer
  353.  
  354.      +  values >= 0 indicate no error, and perhaps some positive status, e.g.
  355.         the number of things really processed
  356.  
  357.      +  values < 0 indicate an error, with a global table of error conditions
  358.         and error messages
  359.  
  360.      The PMAPI routine ppppmmmmEEEErrrrrrrrSSSSttttrrrr(3) translates error conditions into error
  361.      messages.  By convention, the small negative values are assumed to be
  362.      negated versions of the Unix error codes as defined in <<<<eeeerrrrrrrrnnnnoooo....hhhh>>>> and the
  363.      strings returned are as per ssssttttrrrreeeerrrrrrrroooorrrr(3C).  The larger, negative error
  364.      codes are PMAPI error conditions.
  365.  
  366.      One error, common to all PMAPI routines that interact with ppppmmmmccccdddd(1) on
  367.      some host is PPPPMMMM____EEEERRRRRRRR____IIIIPPPPCCCC, which indicates the communication link to
  368.      ppppmmmmccccdddd(1) has been lost.
  369.  
  370. EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT
  371.      The TPC/IP port used by ppppmmmmccccdddd(1) to create the socket for incoming
  372.      connections and requests, is by default port number 4321.  This may be
  373.      over-ridden by setting PPPPMMMMCCCCDDDD____PPPPOOOORRRRTTTT to a different port number.  If a non-
  374.      default port is used when ppppmmmmccccdddd(1) is started, then every monitoring
  375.      application connecting to that ppppmmmmccccdddd(1) must also have PPPPMMMMCCCCDDDD____PPPPOOOORRRRTTTT set in
  376.      their environment before attempting a connection.
  377.  
  378.      When attempting to connect to a remote ppppmmmmccccdddd(1) on a machine that is
  379.      booting, some PMAPI routines could potentially block for a long time
  380.      until the remote machine finishes its initialisation.  These routines
  381.      will abort and return an error if the connection has not been established
  382.      after some specified interval has elapsed.  The default interval is 5
  383.      seconds.  This may be modified by setting PPPPMMMMCCCCDDDD____CCCCOOOONNNNNNNNEEEECCCCTTTT____TTTTIIIIMMMMEEEEOOOOUUUUTTTT in the
  384.      environment to a real number of seconds for the desired timeout.  This is
  385.      most useful in cases where the remote host is at the end of a slow
  386.      network, requiring longer latencies to establish the connection
  387.      correctly.
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. PPPPMMMMAAAAPPPPIIII((((3333))))                                                              PPPPMMMMAAAAPPPPIIII((((3333))))
  401.  
  402.  
  403.  
  404.      When a monitor or client application loses a connection to a ppppmmmmccccdddd(1), the
  405.      connection may be re-established by calling the PMAPI function
  406.      ppppmmmmRRRReeeeccccoooonnnnnnnneeeeccccttttCCCCoooonnnntttteeeexxxxtttt(1).  However, attempts to reconnect are controlled by
  407.      a back-off strategy to avoid flooding the network with reconnection
  408.      requests.  By default, the back-off delays are 5, 10, 20, 40 and 80
  409.      seconds for consecutive reconnection requests from a client (the last
  410.      delay will be repeated for any further attempts after the fifth).
  411.      Setting the environment variable PPPPMMMMCCCCDDDD____RRRREEEECCCCOOOONNNNNNNNEEEECCCCTTTT____TTTTIIIIMMMMEEEEOOOOUUUUTTTT to a comma
  412.      separated list of positive integers will re-define the back-off delays,
  413.      e.g. setting PPPPMMMMCCCCDDDD____RRRREEEECCCCOOOONNNNNNNNEEEECCCCTTTT____TTTTIIIIMMMMEEEEOOOOUUUUTTTT to ``1,2'' will back-off for 1
  414.      second, then attempt another connection request every 2 seconds
  415.      thereafter.
  416.  
  417.      For monitor or client applications connected to ppppmmmmccccdddd(1), there is a
  418.      possibility of the application "hanging" on a request for performance
  419.      metrics or metadata or help text.  These delays may become severe if the
  420.      system running ppppmmmmccccdddd crashes, or the network connection is lost.  By
  421.      setting the environment variable PPPPMMMMCCCCDDDD____RRRREEEEQQQQUUUUEEEESSSSTTTT____TTTTIIIIMMMMEEEEOOOOUUUUTTTT to a real number of
  422.      seconds, requests to ppppmmmmccccdddd will timeout after this number of seconds.  The
  423.      default behaviour is to be willing to wait 10 seconds for a response from
  424.      every ppppmmmmccccdddd for all applications.
  425.  
  426.      Many of the PMAPI client programs require that a valid software license
  427.      be present on the host on which the client is running (the license is
  428.      node-locked).  In the case that such a valid license is present, but is
  429.      due to expire within the next 30 days, a message or popup notifier
  430.      appears informing the user of this condition.  These warnings can be
  431.      disabled by setting PPPPCCCCPPPP____LLLLIIIICCCCEEEENNNNCCCCEEEE____NNNNOOOOWWWWAAAARRRRNNNNIIIINNNNGGGG in the environment.
  432.  
  433.      The environment variable PPPPMMMMLLLLOOOOGGGGGGGGEEEERRRR____PPPPOOOORRRRTTTT may be used to change the base
  434.      TCP/IP port number used by ppppmmmmllllooooggggggggeeeerrrr(1) to create the socket to which
  435.      ppppmmmmllllcccc(1) instances will try and connect.  The default base port number is
  436.      4330.  When used, PPPPMMMMLLLLOOOOGGGGGGGGEEEERRRR____PPPPOOOORRRRTTTT should be set in the environment before
  437.      ppppmmmmllllooooggggggggeeeerrrr(1) is executed.
  438.  
  439.      Many PCP utilites create diagnostic and trace log files, and the default
  440.      locations are below the directory /_v_a_r/_a_d_m/_p_c_p_l_o_g.  Setting the
  441.      environment variable PPPPCCCCPPPP____LLLLOOOOGGGGDDDDIIIIRRRR will over-ride the default choice of
  442.      directory.  If PPPPCCCCPPPP____LLLLOOOOGGGGDDDDIIIIRRRR is unset, the environment variable PPPPCCCCPPPPLLLLOOOOGGGGDDDDIIIIRRRR
  443.      will be treated as an alias and used if set (this provides backwards
  444.      compatibility with earlier PCP releases).
  445.  
  446.      Many of the performance metrics exported from PCP agents have the
  447.      semantics of _c_o_u_n_t_e_r meaning they are expected to be monotonically
  448.      increasing.  Under some circumstances, one value of these metrics may
  449.      smaller than the previously fetched value.  This can happen when a
  450.      counter of finite precision overflows, or when the PCP agent has been
  451.      reset or restarted, or when the PCP agent is exporting values from some
  452.      underlying instrumentation that is subject to some asynchronous
  453.      discontinuity.
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. PPPPMMMMAAAAPPPPIIII((((3333))))                                                              PPPPMMMMAAAAPPPPIIII((((3333))))
  467.  
  468.  
  469.  
  470.      The environment variable PPPPCCCCPPPP____CCCCOOOOUUUUNNNNTTTTEEEERRRR____WWWWRRRRAAAAPPPP may be set to indicate that all
  471.      such cases of a decreasing ``counter'' should be treated as a counter
  472.      overflow, and hence the values are assumed to have wrapped once in the
  473.      interval between consecutive samples.  This ``wrapping'' behavior was the
  474.      default in earlier PCP versions, but by default has been disabled in PCP
  475.      1.3.
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.